package com.tianji.StragyHttp.enumr;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * Description: 客户分析类型枚举
 * Date: 2024/11/20
 *
 * @author Dawson
 */
@AllArgsConstructor
@Getter
public enum CustomerAnalysisEnum {

    // 1-用户资产概览 2-客户资产分析 3-购买频次分布 4-消费金额分布 5-回购周期分布 6-客单价分布 7-最近购买时长分布
    PLATFORM_USER_ASSETS_OVERVIEW(1, "用户资产概览", "1", "",
            "/platformUserAssets/detail",
            "/openController/getPlatformUserAssetsDetail",
            "/platformUserAssets/inSideDetail");

    /**
     * 类型
     */
    private final Integer type;
    /**
     * 名字
     */
    private final String name;
    /**
     * 默认配置间隔值
     */
    private final String defaultInterval;
    /**
     * 导出列名
     */
    private final String exportColumnName;
    /**
     * 请求路径-jd
     */
    private final String jdPath;
    /**
     * 请求路径-tb
     */
    private final String tbPath;
    /**
     * 请求路径-dy
     */
    private final String dyPath;

    /**
     * 根据业务类型获取对应枚举
     *
     * @param type 业务类型
     * @return 枚举实体
     */
    public static CustomerAnalysisEnum getByType(Integer type) {
        for (CustomerAnalysisEnum value : values()) {
            if (value.getType().equals(type)) {
                return value;
            }
        }
        throw new RuntimeException("can not find CustomerAnalysisEnum type: " + type);
    }

    /**
     * 根据平台枚举获取请求路径
     *
     * @param platformEnum 平台枚举
     * @return 请求路径
     */
    public String getPathByPlatformCode(PlatformEnum platformEnum) {
        switch (platformEnum) {
            case JD:
                return this.getJdPath();
            case TB:
                return this.getTbPath();
            case DY:
                return this.getDyPath();
            default:
                return null;
        }
    }
}
